import 'package:built_collection/built_collection.dart';
import 'package:equatable/equatable.dart';
import 'package:mobile_app.core/core/domain/entities/learning_info/learning_info.dart';
import 'package:mobile_app.home.menu/menu_page/domain/entities/backup_collection_meta.dart';
import 'package:mobile_app.home.menu/menu_page/domain/entities/backup_custom_collection_list_item_data.dart';
import 'package:mobile_app.home.menu/menu_page/domain/entities/backup_custom_lexical_item_data.dart';
import 'package:mobile_app.home.menu/menu_page/domain/entities/backup_lexical_item_meta.dart';

class Backup extends Equatable {
  const Backup({
    required this.customLexicalItemDataList,
    required this.lexicalItemMetaMap,
    required this.customCollectionListItemDataList,
    required this.collectionMetaMap,
    required this.topLevelCollectionListItemIds,
    required this.learningInfo,
  });

  final BuiltList<BackupCustomLexicalItemData> customLexicalItemDataList;
  final BuiltMap<String, BackupLexicalItemMeta> lexicalItemMetaMap;
  final BuiltList<BackupCustomCollectionListItemData> customCollectionListItemDataList;
  final BuiltMap<String, BackupCollectionMeta> collectionMetaMap;
  final BuiltList<String> topLevelCollectionListItemIds;
  final LearningInfo learningInfo;

  @override
  List<Object> get props {
    return [
      customLexicalItemDataList,
      lexicalItemMetaMap,
      customCollectionListItemDataList,
      collectionMetaMap,
      topLevelCollectionListItemIds,
    ];
  }
}
